#pragma once
#include <functional>
class SingleTonTemplate
{
public:

	static SingleTonTemplate& getSingleTonTemplate();

	template<class T, class ...Args>
	void registerTemplate(T&& func, Args...args)
	{
		//func(args...);
		func(std::forward<Args>(args)...);
	}

	SingleTonTemplate(const SingleTonTemplate&) = delete;
	 SingleTonTemplate& operator=(const SingleTonTemplate&) = delete;
	//const SingleTonTemplate& (const SingleTonTemplate&) = delete;

private:

	
	SingleTonTemplate() = default;

};



